centerbox: Unparent widgets in dispose
authorTimm Bäder <mail@baedert.org>
Fri, 1 Sep 2017 12:09:44 +0000 (14:09 +0200)
committerTimm Bäder <mail@baedert.org>
Fri, 1 Sep 2017 17:05:30 +0000 (19:05 +0200)
gtk/gtkcenterbox.c

index 710bf8c59b204280ff59872334a9cd9b2dc198fb..88230b9dc77e235f75ab9fb8a52138d04cf4b3a9 100644 (file)
@@ -661,6 +661,32 @@ gtk_center_box_get_property (GObject    *object,
     }
 }
 
+static void
+gtk_center_box_dispose (GObject *object)
+{
+  GtkCenterBox *self = GTK_CENTER_BOX (object);
+
+  if (self->start_widget)
+    {
+      gtk_widget_unparent (self->start_widget);
+      self->start_widget = NULL;
+    }
+
+  if (self->center_widget)
+    {
+      gtk_widget_unparent (self->center_widget);
+      self->center_widget = NULL;
+    }
+
+  if (self->end_widget)
+    {
+      gtk_widget_unparent (self->end_widget);
+      self->end_widget = NULL;
+    }
+
+  G_OBJECT_CLASS (gtk_center_box_parent_class)->dispose (object);
+}
+
 static void
 gtk_center_box_class_init (GtkCenterBoxClass *klass)
 {
@@ -669,6 +695,7 @@ gtk_center_box_class_init (GtkCenterBoxClass *klass)
 
   object_class->set_property = gtk_center_box_set_property;
   object_class->get_property = gtk_center_box_get_property;
+  object_class->dispose = gtk_center_box_dispose;
 
   widget_class->measure = gtk_center_box_measure;
   widget_class->size_allocate = gtk_center_box_size_allocate;